{
  "compilerOptions": {
    "outDir": "./dist/",
    // Подсвечивает все места где не указан тип
    // Однако это не означает, что теперь вовсе нельзя использовать any.
    // Это означает лишь, что в подобных ситуация разработчик должен явно писать any,
    "noImplicitAny": true,
    "module": "ESNext",
    // В какую спецификацию компилируем: для поддержки большинства браузеров
    "target": "es5",
    "jsx": "react-jsx",
    // Компилятор будет обрабатывать не только TS файлы, но и JS файлы
    "allowJs": true,
    "strict": true,
    "moduleResolution": "node",
    // Для абсолютного импорта
    "baseUrl": ".",
    "paths": {
      "*": ["./src/*"]
    },
    // esModuleInterop позволяет работать с пакетами, которые используют
    // common js как с обычными пакета с помощью import (require() module.export) = common js
    // import Moment from 'moment';
    // без флага esModuleInterop результат undefined
    // console.log(Moment);
    // c флагом результат [object Object]
    // console.log(Moment);
    "esModuleInterop": true,
    // Если какая-либо библиотека не имеет default import,
    // лоадеры вроде ts-loader или babel-loader автоматически создают их
    // вместо такого импорта
    // import * as React from 'react';
    // можно писать такой
    // import React from 'react';
    "allowSyntheticDefaultImports": true
  },
  "ts-node": {
    "compilerOptions": {
      "module": "CommonJS"
    }
  },
  "include": [
    "./config/jest/setupTests.ts",
    "./src/**/*.ts",
    "./src/**/*.tsx",
  ]
}
